package RRHH_Modelo;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class RHH_BONO_ANTIGUEDAD {

    private int ID;
    private int ANO;
    private double PORCENTAJE;
    private Conexion con = null;

    public RHH_BONO_ANTIGUEDAD(Conexion con) {
        this.con = con;
    }

    public RHH_BONO_ANTIGUEDAD(int ID, int ANO, double PORCENTAJE) {
        this.ID = ID;
        this.ANO = ANO;
        this.PORCENTAJE = PORCENTAJE;
    }

    public int Insertar() throws SQLException {
        String consulta = "insert into BROKER.RHH_BONO_ANTIGUEDAD (ID, ANO, PORCENTAJE) VALUES (" + ID + "," + ANO + "," + PORCENTAJE + ")";
        con.EjecutarSentencia(consulta);
        consulta = "select BROKER.RHH_BONO_ANTIGUEDAD_SEQ.currval as ID from dual";
        ResultSet rs = con.EjecutarConsulta(consulta);
        rs.next();
        return rs.getInt("ID");
    }

    public boolean Modificar() throws SQLException {
        String consulta = "update BROKER.RHH_BONO_ANTIGUEDAD set ID = " + ID + ",ANO = " + ANO + ",PORCENTAJE = " + PORCENTAJE + " where ID =  " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }

    public void Eliminar() throws SQLException {
        String consulta = "delete from BROKER.RHH_BONO_ANTIGUEDAD where ID= (select max(id) from BROKER.RHH_BONO_ANTIGUEDAD)";
        con.EjecutarSentencia(consulta);
    }

    public RHH_BONO_ANTIGUEDAD Buscar(int id) throws SQLException {
        String consulta = "select * from BROKER.RHH_BONO_ANTIGUEDAD where ID = " + getID();
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_BONO_ANTIGUEDAD> lista = Cargar(rs);
        if (lista.size() > 0) {
            return lista.get(0);
        } else {
            return null;
        }
    }
    
    public RHH_BONO_ANTIGUEDAD sacarPorcentaje(int ANO) throws SQLException {
        String consulta = "select * from BROKER.RHH_BONO_ANTIGUEDAD where ANO = " + ANO;
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_BONO_ANTIGUEDAD> lista = Cargar(rs);
        if (lista.size() > 0) {
            return lista.get(0);
        } else {
            return null;
        }
    }

    public List<RHH_BONO_ANTIGUEDAD> Todos() throws SQLException {
        String consulta = "select * from BROKER.RHH_BONO_ANTIGUEDAD order by ANO";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_BONO_ANTIGUEDAD> lista = Cargar(rs);
        return lista;
    }

    public List<RHH_BONO_ANTIGUEDAD> Cargar(ResultSet rs) throws SQLException {
        List<RHH_BONO_ANTIGUEDAD> lista = new ArrayList<RHH_BONO_ANTIGUEDAD>();
        while (rs.next()) {
            RHH_BONO_ANTIGUEDAD objeto = new RHH_BONO_ANTIGUEDAD(con);
            objeto.setID(rs.getInt("ID"));
            objeto.setANO(rs.getInt("ANO"));
            objeto.setPORCENTAJE(rs.getDouble("PORCENTAJE"));
            lista.add(objeto);
        }
        return lista;
    }

    public int getID() {
        return ID;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    public int getANO() {
        return ANO;
    }

    public void setANO(int ANO) {
        this.ANO = ANO;
    }

    public double getPORCENTAJE() {
        return PORCENTAJE;
    }

    public void setPORCENTAJE(double PORCENTAJE) {
        this.PORCENTAJE = PORCENTAJE;
    }

    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }
}
